<html>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
<link rel="stylesheet" href="../style.css" type="text/css" media="all" />
<body>
<h1>Selection</h1>
<div class="class_description">С помощью этого класса выбираются id объектов, заданных типов, удволетворяющих условиям фильтрации</div>
<h2>Методы</h2><ul><li><a href="#addFilter">addFilter</a></li><li><a href="#addFiltersGroup">addFiltersGroup</a></li><li><a href="#addLimit">addLimit</a></li><li><a href="#addSelectedProperty">addSelectedProperty</a></li><li><a href="#addType">addType</a></li><li><a href="#getList">getList</a></li><li><a href="#getTotalCount">getTotalCount</a></li><li><a href="#setLogicAnd">setLogicAnd</a></li><li><a href="#setLogicOr">setLogicOr</a></li><li><a href="#setOrder">setOrder</a></li><li><a href="#__construct">__construct</a></li></ul><a name="addFilter"></a>
<h3>addFilter</h3>
<div class="block description">
<h4>Описание</h4>
<div class="text method_description">
<div class="prototype"><span class="return">void</span> <span class="name">addFilter</span> (<span class="type">string</span> <span class="varname">$fieldName</span>, <span class="type">mixed</span> <span class="varname">$fieldValue</span>, <span class="type">string</span> <span class="varname">$operator</span> = '=')</div><p>Добавляет фильтр по свойству</p>
</div>
</div><div class="block parametrs">
<h4>Параметры</h4>
<div class="text parametrs"><dl class="var_description">
	<dt>fieldName</dt>
	<dd>имя поля</dd>
</dl><dl class="var_description">
	<dt>fieldValue</dt>
	<dd>значение поля</dd>
</dl><dl class="var_description">
	<dt>operator</dt>
	<dd>логический оператор</dd>
</dl>
</div>
</div><a name="addFiltersGroup"></a>
<h3>addFiltersGroup</h3>
<div class="block description">
<h4>Описание</h4>
<div class="text method_description">
<div class="prototype"><span class="return">void</span> <span class="name">addFiltersGroup</span> (<span class="type">array</span> <span class="varname">$arrayFilters</span>, <span class="type">string</span> <span class="varname">$logicOperator</span> = 'AND')</div><p>Добавляет группу фильтров</p>
</div>
</div><div class="block parametrs">
<h4>Параметры</h4>
<div class="text parametrs"><dl class="var_description">
	<dt>arrayFilters</dt>
	<dd>массив фильтров вида: имя поля, значение поля, логический оператор (по-умолчанию "=") </dd>
</dl><dl class="var_description">
	<dt>logicOperator</dt>
	<dd>оператор, соединяющий условия в группе</dd>
</dl>
</div>
</div><a name="addLimit"></a>
<h3>addLimit</h3>
<div class="block description">
<h4>Описание</h4>
<div class="text method_description">
<div class="prototype"><span class="return">void</span> <span class="name">addLimit</span> (<span class="type">integer</span> <span class="varname">$start</span>, <span class="type">integer</span> <span class="varname">$end</span> = false)</div><p>Устанавливает лимит</p>
</div>
</div><a name="addSelectedProperty"></a>
<h3>addSelectedProperty</h3>
<div class="block description">
<h4>Описание</h4>
<div class="text method_description">
<div class="prototype"><span class="return">void</span> <span class="name">addSelectedProperty</span> (<span class="type">string</span> <span class="varname">$propertyName</span>)</div><p>Добавляет произвольное поле, значения которого также будут выбраны наряду с id</p>
</div>
</div><a name="addType"></a>
<h3>addType</h3>
<div class="block description">
<h4>Описание</h4>
<div class="text method_description">
<div class="prototype"><span class="return">void</span> <span class="name">addType</span> (<span class="type">Type</span> <span class="varname">$oType</span>)</div><p>Добавляет тип объектов</p>
</div>
</div><a name="getList"></a>
<h3>getList</h3>
<div class="block description">
<h4>Описание</h4>
<div class="text method_description">
<div class="prototype"><span class="return">array</span> <span class="name">getList</span> ()</div><p>Возвращает массив идентификаторов объектов</p>
</div>
</div><a name="getTotalCount"></a>
<h3>getTotalCount</h3>
<div class="block description">
<h4>Описание</h4>
<div class="text method_description">
<div class="prototype"><span class="return">integer</span> <span class="name">getTotalCount</span> ()</div><p>Возвращает общее число объектов, удовлетворяющих условиям фильтрации</p>
</div>
</div><a name="setLogicAnd"></a>
<h3>setLogicAnd</h3>
<div class="block description">
<h4>Описание</h4>
<div class="text method_description">
<div class="prototype"><span class="return">void</span> <span class="name">setLogicAnd</span> ()</div><p>Устанавливает логоческий оператор И (AND)</p>
</div>
</div><a name="setLogicOr"></a>
<h3>setLogicOr</h3>
<div class="block description">
<h4>Описание</h4>
<div class="text method_description">
<div class="prototype"><span class="return">void</span> <span class="name">setLogicOr</span> ()</div><p>Устанавливает логоческий оператор ИЛИ (OR)</p>
</div>
</div><a name="setOrder"></a>
<h3>setOrder</h3>
<div class="block description">
<h4>Описание</h4>
<div class="text method_description">
<div class="prototype"><span class="return">void</span> <span class="name">setOrder</span> (<span class="type">string</span> <span class="varname">$fieldName</span>, <span class="type">boolean</span> <span class="varname">$asc</span> = true)</div><p>Устанавливает поле, по которому производится сортировка</p>
</div>
</div><div class="block parametrs">
<h4>Параметры</h4>
<div class="text parametrs"><dl class="var_description">
	<dt>asc</dt>
	<dd>порядок сортировки: true - прямой, false - обратный</dd>
</dl>
</div>
</div><a name="__construct"></a>
<h3>__construct</h3>
<div class="block description">
<h4>Описание</h4>
<div class="text method_description">
<div class="prototype"><span class="return">void</span> <span class="name">__construct</span> ()</div><p>Конструктор</p>
</div>
</div><h2>Примеры</h2><div class="sample">
<p>Пример №1</p>
<div class="sample_content"><code><span style="color: #000000">
<span style="color: #0000BB">&lt;?php<br /><br />$oTypesController&nbsp;</span><span style="color: #007700">=&nbsp;</span><span style="color: #0000BB">TypesController</span><span style="color: #007700">::</span><span style="color: #0000BB">getInstance&nbsp;</span><span style="color: #007700">();<br /></span><span style="color: #0000BB">$objectsController&nbsp;</span><span style="color: #007700">=&nbsp;</span><span style="color: #0000BB">ObjectsController</span><span style="color: #007700">::</span><span style="color: #0000BB">getInstance&nbsp;</span><span style="color: #007700">();<br /><br /></span><span style="color: #0000BB">$sel&nbsp;</span><span style="color: #007700">=&nbsp;new&nbsp;</span><span style="color: #0000BB">Selection</span><span style="color: #007700">;<br /></span><span style="color: #0000BB">$sel</span><span style="color: #007700">-&gt;</span><span style="color: #0000BB">addType&nbsp;</span><span style="color: #007700">(</span><span style="color: #0000BB">$oTypesController</span><span style="color: #007700">-&gt;</span><span style="color: #0000BB">getTypeByName&nbsp;</span><span style="color: #007700">(</span><span style="color: #DD0000">'article'</span><span style="color: #007700">));<br /></span><span style="color: #0000BB">$sel</span><span style="color: #007700">-&gt;</span><span style="color: #0000BB">addType&nbsp;</span><span style="color: #007700">(</span><span style="color: #0000BB">$oTypesController</span><span style="color: #007700">-&gt;</span><span style="color: #0000BB">getTypeByName&nbsp;</span><span style="color: #007700">(</span><span style="color: #DD0000">'question'</span><span style="color: #007700">));<br /></span><span style="color: #0000BB">$sel</span><span style="color: #007700">-&gt;</span><span style="color: #0000BB">addSelectedProperty&nbsp;</span><span style="color: #007700">(</span><span style="color: #DD0000">'owner_id'</span><span style="color: #007700">);&nbsp;</span><span style="color: #FF8000">//&nbsp;Добавляем&nbsp;в&nbsp;выборку&nbsp;поле&nbsp;с&nbsp;id&nbsp;автора<br /></span><span style="color: #0000BB">$sel</span><span style="color: #007700">-&gt;</span><span style="color: #0000BB">addLimit&nbsp;</span><span style="color: #007700">(</span><span style="color: #0000BB">2</span><span style="color: #007700">);&nbsp;</span><span style="color: #FF8000">//&nbsp;все-равно,&nbsp;что&nbsp;0,2<br /></span><span style="color: #0000BB">$sel</span><span style="color: #007700">-&gt;</span><span style="color: #0000BB">setOrder&nbsp;</span><span style="color: #007700">(</span><span style="color: #DD0000">'pubdate'</span><span style="color: #007700">,&nbsp;</span><span style="color: #0000BB">false</span><span style="color: #007700">);&nbsp;</span><span style="color: #FF8000">//&nbsp;сортируем&nbsp;по&nbsp;дате&nbsp;публикации,&nbsp;где&nbsp;новые&nbsp;будут&nbsp;сверху<br /><br /></span><span style="color: #0000BB">$res&nbsp;</span><span style="color: #007700">=&nbsp;</span><span style="color: #0000BB">$sel</span><span style="color: #007700">-&gt;</span><span style="color: #0000BB">getList&nbsp;</span><span style="color: #007700">();<br /></span><span style="color: #FF8000">/*<br />0&nbsp;=&nbsp;Array<br />&nbsp;0&nbsp;=&gt;&nbsp;12345&nbsp;(id&nbsp;объекта)<br />&nbsp;1&nbsp;=&gt;&nbsp;10&nbsp;(id&nbsp;типа&nbsp;объекта)<br />&nbsp;owner_id&nbsp;=&gt;&nbsp;7123<br />1&nbsp;=&nbsp;Array<br />&nbsp;0&nbsp;=&gt;&nbsp;12347<br />&nbsp;1&nbsp;=&gt;&nbsp;13<br />&nbsp;owner_id&nbsp;=&gt;&nbsp;321<br />*/<br /><br /></span><span style="color: #0000BB">?&gt;</span>
</span>
</code></div>
</div></body>
</html>